<html>
<head>
  <meta charset="utf-8">
  <title>upload模块快速使用</title>
  <link rel="stylesheet" href="/public/static/index/layui/css/layui.css" media="all">
</head>
<body>
 
    <div class="layui-upload">
        <button type="button" class="layui-btn layui-btn-normal" id="testList">选择多文件</button> 
        <div class="layui-upload-list">
          <table class="layui-table">
            <thead>
              <tr>
                <th>缩略图</th>
              <th>文件名</th>
              <th>大小</th>
              <th>状态</th>
              <th>操作</th>
            </tr></thead>
            <tbody id="demoList"></tbody>
          </table>
        </div>
        <button type="button" class="layui-btn" id="testListAction">开始上传</button>
      </div> 


      
<script type="text/javascript" src="/public/static/index/js/jquery-3.4.1.min.js"></script>
<script src="/public/static/index/layui/layui.js"></script>

<script>

layui.use('upload', function(){
  var upload = layui.upload;
  var $ = layui.jquery

  //多文件列表示例
  var demoListView = $('#demoList')
  ,uploadListIns = upload.render({
    elem: '#testList'
    ,url: '/qingadmin/uploader/local_upload' //改成您自己的上传接口
    ,accept: 'file'
    ,multiple: true
    ,auto: false
    ,acceptMime: 'image/*'
    ,bindAction: '#testListAction'
    ,choose: function(obj){   
      var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列
      //读取本地文件
      obj.preview(function(index, file, result){
        var tr = $(['<tr id="upload-'+ index +'">'
          ,'<td><img src="'+ result +'"></td>'
          ,'<td>'+ file.name +'</td>'
          ,'<td>'+ (file.size/1024).toFixed(1) +'kb</td>'
          ,'<td>等待上传</td>'
          ,'<td>'
            ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>'
            ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>'
            ,'<button class="layui-btn layui-btn-xs up" onclick="nextpic(this)">上移</button>'
            ,'<button class="layui-btn layui-btn-xs down" onclick="nextpic(this)">下移</button>'
            ,'<input type="hidden" value="" name="thumb[]" class="input">'
          ,'</td>'
        ,'</tr>'].join(''));
        
        //单个重传
        tr.find('.demo-reload').on('click', function(){
          obj.upload(index, file);
        });
        
        //删除
        tr.find('.demo-delete').on('click', function(){
          delete files[index]; //删除对应的文件
          tr.remove();
          uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值，以免删除后出现同名文件不可选
        });
        
        demoListView.append(tr);
      });
    }
    ,done: function(res, index, upload){
        
      if(res){ //上传成功
        var tr = demoListView.find('tr#upload-'+ index)
        ,tds = tr.children();
        tds.eq(3).html('<span style="color: #5FB878;">上传成功</span>');
        tds.eq(4).children('.layui-btn-danger').after("<button class='layui-btn layui-btn-xs layui-btn-danger' onclick='delImage(this)'>删除</button>"); 
        tds.eq(4).children('.demo-delete').remove();
        return delete this.files[index]; //删除文件队列已经上传成功的文件
      }
      this.error(index, upload);
    }
    ,error: function(index, upload){
      var tr = demoListView.find('tr#upload-'+ index)
      ,tds = tr.children();
      tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
      tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传
    }
  });

});


function nextpic(a) {
    var current = $(a).parent().parent();
    var next = $(a).parent().parent().next();
    next.after(current);
  }
  function prevpic(a) {
    var current = $(a).parent().parent();
    var prev = $(a).parent().parent().prev();
    current.after(prev);
  }

function delImage(a){
    var path = $(a).parent().children(".input").val();
    var url = "/dongadmin/uploader/delete_img_mul";
    var a=$(a);
    postData = { 'path': path,};
    $.post(url, postData, function (result) {
      result = JSON.parse(result);
      if (result.status == 1) {
        a.parent().parent().remove();
        
        layui.use('layer', function () {
          var layer = layui.layer;
          layer.msg('已经删除成功！');
        });
      }
    });
}
</script>
</body>
</html>